package com.example.aggregatedemo.arrary;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

@SpringBootTest
public class ListTest_2 {

    //LIST集合的遍历方式
    @Test
    void List_1_Test() {
        List<String> list = new ArrayList();

        //
        list.add("aaa");
        list.add("ccc");
        list.add("ddd");
        System.out.println(list);

        // 1.迭代器
        Iterator<String> it = list.iterator();
        System.out.println(it);
        while (it.hasNext()) {
            String s = it.next();
            System.out.println(s);
        }

    }

    //增强for
    @Test
    void List_2_Test() {
        List<String> list = new ArrayList();

        //
        list.add("aaa");
        list.add("ccc");
        list.add("ddd");
        System.out.println(list);

        // 增强for
        for (String s : list) {
            System.out.println(s);
        }
    }

    //lambda
    @Test
    void List_3_Test() {
        List<String> list = new ArrayList();

        //
        list.add("aaa");
        list.add("ccc");
        list.add("ddd");
        System.out.println(list);

        list.forEach(s -> System.out.println(s));
    }

    //普通循环
    @Test
    void List_4_Test() {
        List<String> list = new ArrayList();

        //
        list.add("aaa");
        list.add("ccc");
        list.add("ddd");
        System.out.println(list);

        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            System.out.println(s);
        }
    }

    //列表迭代器
    @Test
    void List_5_Test() {
        List<String> list = new ArrayList();

        //
        list.add("aaa");
        list.add("ccc");
        list.add("ddd");
        System.out.println(list);

        ListIterator<String> it = list.listIterator();
        while (it.hasNext()) {
            String str = it.next();
            if ("ccc".equals(str)) {
//                it.add("qqq");
                it.set("fff");
            }
            System.out.println(str);
        }
        System.out.println(list);

        System.out.println("后到前");
        while (it.hasPrevious()) {
            String str = it.previous();
            if ("qqq".equals(str)) {
                it.remove();
            }
            System.out.println(str);
        }

        System.out.println(list);

    }

    @Test
    void TestDemp() {
        int i = 10;
        if(i!=10)
            i=16;
        System.out.println((i >> 1));
    }
}
